; ==================================================================================================
; #                              -- Universal Hotkey Script --                                    #
; ==================================================================================================
;
; 介绍:
;   本脚本旨在通过一系列精心设计的快捷键和按键映射，提升 Windows 操作系统的使用效率。
;   脚本主要分为两大模块：
;   1. 功能区：提供窗口管理、程序启动等便捷操作。
;   2. 核心功能区：重新映射按键，实现更高效的文本导航和编辑。
;
;   所有修改均旨在减少不必要的手部移动，优化日常操作流程。
;
; ==================================================================================================
; § 初始化设置
; ==================================================================================================

; 强制脚本单一实例运行，防止重复启动和冲突。
#SingleInstance force

; ==================================================================================================
; § 功能区：常规快捷键
; ==================================================================================================

; --- 功能1：智能关闭窗口 ---
;   说明：按下 Alt + Q 可关闭当前活动窗口。
;         此快捷键在桌面环境下无效，以防止误操作。
; --------------------------------------------------------------------------------------------------
!q::
    if WinActive("ahk_class Progman") or WinActive("ahk_class WorkerW")
    {
        return
    }
    else
    {
        WinClose, A
    }
return

; --- 功能2：最小化当前窗口 ---
;   说明：按下 Ctrl + Alt + Q 可将当前窗口最小化。
; --------------------------------------------------------------------------------------------------
^!q::WinMinimize, A

; --- 功能3：右Alt+P 映射为 Win+P (投影/显示器切换) ---
;   说明：按下右 Alt + P 相当于按下 Win + P，用于快速打开投影设置。
; --------------------------------------------------------------------------------------------------
>!p::Send, #p

; --- 功能4：打开 Windows Terminal ---
;   说明：按下 Ctrl + Alt + T 快速启动 Windows Terminal。
;         请注意：下面的路径为绝对路径，如果您的 Terminal 位置不同，请手动修改。
; --------------------------------------------------------------------------------------------------
;^!t::
;    Run, "D:\Lambda\Tools\Microsoft.WindowsTerminal_1.22.11751.0_x64\terminal-1.22.11751.0\wt.exe"
;    return

; --- 功能5：VS Code 专属输入法切换 ---
;   说明：仅当 VS Code 窗口为活动窗口时，按下 Esc 键才附加“切换到美国英语”的功能。
;         在所有其他程序中，Esc 键的行为不受任何影响。
; --------------------------------------------------------------------------------------------------
#IfWinActive ahk_exe Code.exe
    ; 定义 Esc 键的热键，~ 确保不屏蔽 Esc 的原有功能。
    ~Esc::
        ; 向 VS Code 窗口发送切换输入法的请求 (0x04090409 = 美国英语)。
        PostMessage, 0x0050, 0, 0x04090409, , A
    return
#IfWinActive ; 结束 VS Code 的专属区域，确保后续热键是全局的。


; ==================================================================================================
; § 核心功能区：按键映射
; ==================================================================================================

; --- 1. CapsLock 键 -> Esc 键 ---
;   说明：将大小写锁定键 (CapsLock) 的功能完全替换为 Esc 键。
; --------------------------------------------------------------------------------------------------
;CapsLock::Esc

; --- 2. 左 Alt + HJKL 作为全局方向键 (类 Vim 导航) ---
;   说明：按住左 Alt 键并结合 H/J/K/L，可以实现光标的左/下/上/右移动。
;         这个组合键全局生效，且不会与 Esc 键冲突。
; --------------------------------------------------------------------------------------------------
<!h::Send, {Left}   ; 左 Alt + H = 左
<!j::Send, {Down}   ; 左 Alt + J = 下
<!k::Send, {Up}     ; 左 Alt + K = 上
<!l::Send, {Right}  ; 左 Alt + L = 右